package com.mmall.utils;

import org.apache.commons.lang.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import java.util.Date;

public class DateTimeUtil {

    public static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 将指定的日期字符串转为Date类型
     * @param dateTimeStr 日期字符串
     * @param forMatStr 字符串日期格式
     * @return
     */
    public static Date strToDate(String dateTimeStr,String forMatStr){
        DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(forMatStr);
        DateTime dateTime = dateTimeFormatter.parseDateTime(dateTimeStr);
        return dateTime.toDate();
    }

    /**
     * Date类型转为指定的日期字符串
     * @param date Date类型对象
     * @param formatStr 指定字符串格式
     * @return
     */
    public static String dateToStr(Date date,String formatStr){
        if (date == null){
            return StringUtils.EMPTY;
        }

        DateTime dateTime = new DateTime(date);
        return dateTime.toString(formatStr);
    }

    /**
     * 将此格式的 ”yyyy-MM-dd HH:mm:ss“ 日期字符串转为Date类型
     * @param dateTimeStr 日期字符串
     * @return
     */
    public static Date strToDate(String dateTimeStr){
        DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(STANDARD_FORMAT);
        DateTime dateTime = dateTimeFormatter.parseDateTime(dateTimeStr);
        return dateTime.toDate();
    }

    /**
     * Date类型转为此格式的 ”yyyy-MM-dd HH:mm:ss“ 的日期字符串
     * @param date date对象
     * @return
     */
    public static String dateToStr(Date date){
        if (date == null){
            return StringUtils.EMPTY;
        }

        DateTime dateTime = new DateTime(date);
        return dateTime.toString(STANDARD_FORMAT);
    }
}
